package arithmeticSelf;

import java.util.Arrays;

public class SelectionSort {
    public static void main(String[] args) {
        //定义数组--------------------
        int[] arr = new int[10];
        for (int i=0;i<arr.length;i++) {
            arr[i] = (int)(Math.random()*100)+1;
        }
        System.out.println(Arrays.toString(arr));

        //选择排序---------------------
//        for(int i=0;i<arr.length-1;i++) {
//            for(int j=i+1;j<arr.length;j++) {
//                if(arr[i]>arr[j]) {------------------------------------交换太频繁
//                    int temp = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = temp;
//                }
//            }
//            System.out.println(arrays.toString(arr));
//        }
//        System.out.println(arrays.toString(arr));

        //选择排序-----------------------------   交换下标   如果是 arr[j]<arr[i] 错误，arr[j]是在和最小值比，不是和arr[i]比
//        for(int i=0;i<arr.length-1;i++) {
//            int min = i;
//            for(int j=i+1;j<arr.length;j++) {
//                if(arr[j]<arr[min]) {
//                    min = j;
//                }
//            }
//            int temp = arr[i];
//            arr[i] = arr[min];
//            arr[min] = temp;
//        }
//        System.out.println(Arrays.toString(arr));

        //选择排序--------------------------------  交换值//----------------------错误  index值不在循环内赋值，一直保持不变，会把别的吃掉
//        for(int i=0;i<arr.length-1;i++) {
//            int index = arr[i];
//            for(int j=i+1;j<arr.length;j++) {
//                if(arr[j]<arr[i]) {
//                    arr[i] = arr[j];
//                    arr[j] = index;
//                }
//            }
//            System.out.println(Arrays.toString(arr));
//        }
//        System.out.println(Arrays.toString(arr));

        for (int i = 0; i < arr.length - 1; i++) {
            int min = arr[i];
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < min) {
                    min = arr[j];
                    arr[j] = arr[i];
                    arr[i] = min;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
